package cn.wolfcode.wolf2w.business.controller;

import cn.wolfcode.wolf2w.business.util.SmsUtils;
import cn.wolfcode.wolf2w.common.core.domain.R;
import cn.wolfcode.wolf2w.common.redis.service.RedisService;
import cn.wolfcode.wolf2w.common.redis.util.RedisKeys;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.rmi.ServerException;
import java.util.Random;
import java.util.concurrent.TimeUnit;

@RestController
@RequestMapping("/sms")
public class SmsController {
    @Autowired
    private RedisService redisService;
/**
 * 发送验证码接口
 * @param phone 接收验证码的手机号码
 * @return 返回操作结果对象
 * @throws ServerException 服务器异常
 */
    @PostMapping("/sendVerifyCode")
    public Object sendVerifyCode(String phone) throws ServerException {
    // 创建随机数生成器
        Random random = new Random();
    // 生成6位随机验证码（100000-999999）
        Integer rand = random.nextInt(900000)+100000;
    // 打印验证码到控制台（实际项目中应移除）
        System.err.println("验证码是"+rand);
    // 注释掉的短信发送代码（使用阿里云短信服务发送验证码）
//        SmsUtils.sendSmsAliyun(phone,rand.toString());
    // 构建Redis中验证码的键
        String key = RedisKeys.VERIFY_CODE.join(phone);
    // 设置验证码的值
        String value = rand.toString();
    // 将验证码存入Redis，并设置过期时间
        redisService.setCacheObject(key,value,RedisKeys.VERIFY_CODE.getTime(), TimeUnit.SECONDS);
    // 返回操作成功的结果
        return R.ok();
    }
}
